#pragma once

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
typedef int LTDataType;

typedef struct ListNode
{
	struct ListNode* prev;
	struct ListNode* next;
	LTDataType data;
}LTNode;

LTNode* ListInit();

void ListDestroy(LTNode* phead);

void ListPrint(LTNode* phead);

void ListPushBack(LTNode* phead, LTDataType x);

void ListPushFront(LTNode* phead, LTDataType x);

void ListPopBack(LTNode* phead);

void ListPopFront(LTNode* phead);

LTNode* ListFind(LTNode* phead, LTDataType x);

void ListInsert(LTNode* pos, LTDataType x);

void ListErase( LTNode* pos);